home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 04 (1982-12)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 04 (1982-12)(Softdisk)(Side B).do / MASTER CATALOG.bas < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  211 lines

  1. 30  HIMEM: 37120: TEXT 
  2. 50  REM  TN$ MUST BE 1ST VAR & LENGTH 30
  3. 60 TN$ = "H                             "
  4. 70 D$ =  CHR$(4)
  5. 80 N =  -1
  6. 90  PRINT D$;"NOMONC,I,O"
  7. 100  PRINT D$;"BLOAD B.MASTER.CATALOG 48K"
  8. 110  CALL 37888
  9. 120  IF  PEEK(28) = 1  THEN  PRINT "<CTRL-G>TN$ ERROR": END 
  10. 130  DIM NA$(1200)
  11. 140  GOTO 1000
  12. 150  REM  MOVE NAME
  13. 160  IF  PEEK(28) = 0  THEN 190
  14. 170  IF  PEEK(28) = 255  THEN  POP : RETURN 
  15. 180  NORMAL : PRINT "<CTRL-G>DISK ERROR": POP : END 
  16. 190 N = N +1
  17. 200 NA$(N) = V$ +VI$
  18. 210 TY =  PEEK(27): IF TY >4  THEN TY = TY -128
  19. 220  IF TY = 0  THEN NA$(N) = NA$(N) +" T "
  20. 230  IF TY = 1  THEN NA$(N) = NA$(N) +" I "
  21. 240  IF TY = 2  THEN NA$(N) = NA$(N) +" A "
  22. 250  IF TY = 4  THEN NA$(N) = NA$(N) +" B "
  23. 260 L =  LEN(TN$) -3: FOR I = 1 TO L
  24. 270  IF  MID$ (TN$,I,3) = "   "  THEN NA$(N) = NA$(N) + LEFT$(TN$,I -1): GOTO 300
  25. 280  NEXT I
  26. 290 NA$(N) = NA$(N) + LEFT$(TN$,29)
  27. 300  RETURN 
  28. 310  REM  READ CATALOG & PUT
  29. 320  REM  PROGRAM NAMES IN NA$(XX)
  30. 330  CALL 37891: REM   1ST SECTOR
  31. 340 V$ =  STR$( PEEK(26)): IF  LEN(V$) <3  THEN V$ =  LEFT$("00",3 - LEN(V$)) +V$
  32. 350 :N = N +1: FLASH : PRINT "ADDING VOLUME ";V$
  33. 360 FS% =  PEEK(29) + PEEK(30) *256:FS$ =  STR$(FS%):DF$ =  STR$(FS%/4): IF  LEN(FS$) <3  THEN FS$ =  LEFT$("  ",3 - LEN(FS$)) +FS$
  34. 370 NA$(N) = V$ +VI$ +"    FREE SECTORS = " +FS$ +" (" +DF$ +"K)"
  35. 380  GOSUB 150
  36. 390  CALL 37894: REM   LOOK FOR MORE
  37. 400  GOSUB 150
  38. 410  GOTO 390
  39. 500  INPUT "WHICH SLOT FOR PRINTER? ";SLOT: PRINT D$"PR#"SLOT: GOTO 1200
  40. 600  PRINT D$"PR#0": GOTO 1200
  41. 1000  NORMAL : HOME 
  42. 1010  INVERSE : HTAB 8: PRINT "MASTER CATALOG";: NORMAL : PRINT " - FROM SOFTDISK"
  43. 1040  PRINT : PRINT : HTAB 11: INVERSE : PRINT "OPTIONS": NORMAL 
  44. 1050  PRINT 
  45. 1060  HTAB 5: PRINT "0  MENU"
  46. 1070  HTAB 5: PRINT "1  DELETE FILE"
  47. 1080  HTAB 5: PRINT "2  ADD A VOLUME"
  48. 1090  HTAB 5: PRINT "3  DELETE A VOLUME"
  49. 1100  HTAB 5: PRINT "4  LIST FILE"
  50. 1110  HTAB 5: PRINT "5  CATALOG DISK"
  51. 1120  HTAB 5: PRINT "6  SAVE FILE"
  52. 1130  HTAB 5: PRINT "7  FIND PROGRAM NAME"
  53. 1140  HTAB 5: PRINT "8  NO. ENTRIES IN MEMORY"
  54. 1150  HTAB 5: PRINT "9  EXIT"
  55. 1160  HTAB 4: PRINT "10  PRINTER ON"
  56. 1170  HTAB 4: PRINT "11  PRINTER OFF"
  57. 1190  VTAB 21
  58. 1200  PRINT : INPUT "OPTION ";OP
  59. 1210  IF OP <0  OR OP >11  THEN 1190
  60. 1215  IF OP = 10  THEN 500
  61. 1216  IF OP = 11  THEN 600
  62. 1220  IF OP = 0  THEN 1000
  63. 1230  ON OP GOTO 1500,2000,3000,4000,5000,7000,9500,7500,8000
  64. 1500  REM  DELETE FILE
  65. 1510  INPUT "FILE NAME? ";FL$: IF FL$ = ""  THEN 1000
  66. 1520  PRINT "TO DELETE '";FL$;"'"
  67. 1530  PRINT "ENTER '<CONTROL> Y'; ELSE RETURN"
  68. 1540  GET A$
  69. 1550  IF A$ < > CHR$(25)  THEN 1000
  70. 1560  PRINT 
  71. 1570  ONERR  GOTO 1600
  72. 1580  PRINT D$"DELETE ";FL$;",V0"
  73. 1590  GOTO 1000
  74. 1600  POKE 216,0:X =  PEEK(222)
  75. 1610  IF X = 6  THEN 1000
  76. 1620  RESUME 
  77. 2000  REM    ADD A VOLUME
  78. 2010  IF ID < >0  THEN 2080
  79. 2020  PRINT "DO YOU WANT TO ASSIGN EACH SECONDARY": PRINT "VOLUME I.D. FOR THIS RUN? (Y/N)"
  80. 2030  GET A$
  81. 2040  IF A$ = "Y"  THEN ID = 2: GOTO 2090
  82. 2050  PRINT : PRINT "O.K., I WILL ASSIGN THEM BEGINNING WITH": PRINT "A NUMBER OF YOUR CHOICE.": PRINT 
  83. 2060  PRINT : PRINT "INPUT A STARTING SECONDARY VOLUME": INPUT "I.D. (0-900) ";VI: IF VI <0  OR VI >900  THEN 2060
  84. 2070 ID = 1: GOTO 2100
  85. 2080  IF ID = 1  THEN VI = VI +1: GOTO 2100
  86. 2090  INPUT "SECONDARY VOLUME I.D. (0-900)? ";VI: IF VI <0  OR VI >900  THEN 2090
  87. 2100 VI$ =  STR$(VI): IF  LEN(VI$) <3  THEN VI$ =  LEFT$("00",3 - LEN(VI$)) +VI$
  88. 2110 VI$ = " " +VI$
  89. 2120  PRINT " INSERT DISKETTE"
  90. 2130  PRINT "AND HIT RETURN"
  91. 2140  GET A$
  92. 2150  POKE (28),0
  93. 2160  GOSUB 310: REM   READ CATALOG
  94. 2170 X = X +1: IF X - INT(X/5) *5 = 0  THEN F =  FRE(0)
  95. 2180  GOTO 1000
  96. 3000  REM  DELETE A VOLUME
  97. 3010  PRINT 
  98. 3015  PRINT "FILE MUST BE STORED ON DISK BEFORE": PRINT "A VOLUME CAN BE DELETED."
  99. 3017  PRINT : INPUT "DO YOU WANT TO DELETE VOLUME?";X9$
  100. 3018  IF X9$ < >"Y"  AND X9$ < >"YES"  THEN  GOTO 1000
  101. 3020  GOSUB 10200
  102. 3030  PRINT "DELETE PRIMARY OR SECONDARY VOLUME (P/S)?": GET A$
  103. 3040  IF A$ = "P"  THEN N% = 1:A$ = "PRIMARY": GOTO 3070
  104. 3050  IF A$ = "S"  THEN N% = 5:A$ = "SECONDARY": GOTO 3070
  105. 3060  GOTO 3030
  106. 3070  PRINT A$;: INPUT " VOLUME NUMBER? ";VD$
  107. 3080  IF  LEN(VD$) <3  THEN VD$ =  LEFT$("00",3 - LEN(VD$)) +VD$
  108. 3090  ONERR  GOTO 3160
  109. 3100  PRINT D$"READ ";FL$
  110. 3110 I =  -1
  111. 3120 I = I +1
  112. 3130  INPUT NA$(I)
  113. 3140  IF  MID$ (NA$(I),N%,3) = VD$  THEN 3130
  114. 3150  GOTO 3120
  115. 3160  POKE 216,0:X =  PEEK(222)
  116. 3170  IF X = 5  THEN  GOSUB 10000:N = I -1: GOTO 7050
  117. 3180  RESUME 
  118. 3900  IF  PEEK(37) <21  OR SLOT  THEN 3940
  119. 3910  PRINT "'RETURN' FOR MORE. 'ESC' TO MENU"
  120. 3920  GET A$: IF A$ =  CHR$(27)  THEN  POP : GOTO 1000
  121. 3930  HOME : PRINT 
  122. 3940  RETURN 
  123. 4000  REM  LIST CATALOG
  124. 4005  INPUT "DO YOU WANT A NEW FILE LOADED? ";X9$
  125. 4007  IF X9$ = "Y"  OR X9$ = "YES"  THEN N = 0:ID = 0
  126. 4010  IF N >0  THEN 4110
  127. 4020  ONERR  GOTO 4080
  128. 4030  GOSUB 10200
  129. 4040  PRINT D$;"READ ";FL$
  130. 4050 N = N +1
  131. 4060  INPUT NA$(N)
  132. 4070  GOTO 4050
  133. 4080  POKE 216,0:X =  PEEK(222)
  134. 4090  IF X = 5  THEN  GOSUB 10000:N = N -1: GOTO 4110
  135. 4100  RESUME 
  136. 4110  HOME 
  137. 4120 TI% = 0:TF% = 0:TT% = 0:TB% = 0:TN% = 0
  138. 4130  GOSUB 10100
  139. 4140  IF N <0  THEN 4240
  140. 4150  PR# SLOT: FOR I = 0 TO N
  141. 4160  PRINT NA$(I)
  142. 4170  IF  MID$ (NA$(I),9,1) = "I"  THEN TI% = TI% +1: GOTO 4220
  143. 4180  IF  MID$ (NA$(I),9,1) = "A"  THEN TF% = TF% +1: GOTO 4220
  144. 4190  IF  MID$ (NA$(I),9,1) = "T"  THEN TT% = TT% +1: GOTO 4220
  145. 4200  IF  MID$ (NA$(I),9,1) = " "  THEN 4220
  146. 4210 TB% = TB% +1
  147. 4220  GOSUB 3900
  148. 4230  NEXT I
  149. 4240 TN% = TI% +TF% +TT% +TB%
  150. 4250  PRINT : HTAB 11: PRINT "NUMBER OF PROGRAMS"
  151. 4260  PRINT "INT   FP   TEXT   MACH   TOTAL"
  152. 4270  PRINT TI%; TAB( 7);TF%; TAB( 14);TT%; TAB( 21);TB%; TAB( 28);TN%
  153. 4280  PRINT "RETURN TO MENU: 0"
  154. 4290  PRINT "<CTRL-D>PR#0": GOTO 600
  155. 5000  REM  CATALOG DISK
  156. 5010  PRINT D$"CATALOG"
  157. 5020  INPUT "PRESS RETURN TO CONTINUE";X9$
  158. 5030  GOTO 1000
  159. 7000  REM  SAVE CATALOG
  160. 7010  INPUT "FILE NAME? ";FL$: IF FL$ = ""  THEN 1000
  161. 7020  PRINT "INSERT '";FL$;"' DISKETTE"
  162. 7030  PRINT "AND HIT RETURN"
  163. 7040  GET A$
  164. 7050  PRINT 
  165. 7060  ONERR  GOTO 7090
  166. 7070  PRINT D$"DELETE ";FL$;",V0"
  167. 7080  GOTO 7120
  168. 7090  POKE 216,0:X =  PEEK(222)
  169. 7100  IF X = 6  THEN 7120
  170. 7110  RESUME 
  171. 7120  IF N <0  THEN 1000
  172. 7130  PRINT D$"OPEN ";FL$",V0"
  173. 7140  PRINT D$"WRITE ";FL$
  174. 7150  FOR I = 0 TO N
  175. 7160  PRINT NA$(I)
  176. 7170  NEXT I
  177. 7180  PRINT D$"CLOSE ";FL$
  178. 7190  GOTO 1000
  179. 7500  REM  NO. PGM ENTRIES
  180. 7510 L = N +1
  181. 7520  INVERSE : PRINT "COMPUTING FREE MEMORY": NORMAL 
  182. 7530 F =  FRE(0): PRINT "TOTAL NO. OF ENTRIES = ";L: PRINT "ROOM FOR APPROX. "; INT(F/22);" MORE"
  183. 7540  GOTO 4280
  184. 8000  REM  END
  185. 8010  POKE 216,0: END 
  186. 9500  REM  FIND PROGRAM NAME
  187. 9510  INPUT "PROGRAM NAME? ";PN$:L =  LEN(PN$): IF L = 0  THEN 1000
  188. 9520  IF N >0  THEN 9600
  189. 9530  GOSUB 10200
  190. 9540  GOSUB 10100
  191. 9550  ONERR  GOTO 9630
  192. 9560  PRINT D$"READ ";FL$
  193. 9570  INPUT FI$
  194. 9580  IF PN$ =  MID$ (FI$,11,L)  THEN  PRINT FI$: GOSUB 3900
  195. 9590  GOTO 9570
  196. 9600  GOSUB 10100: FOR I = 0 TO N
  197. 9610  IF PN$ =  MID$ (NA$(I),11,L)  THEN  PRINT NA$(I): GOSUB 3900
  198. 9620  NEXT I: GOTO 4280
  199. 9630  POKE 216,0:X =  PEEK(222)
  200. 9640  IF X = 5  THEN  GOSUB 10000: GOTO 4280
  201. 9650  RESUME 
  202. 10000  PRINT D$"CLOSE ";FL$
  203. 10010  RETURN 
  204. 10100  HOME : PRINT "VOL SID TYPE   PROGRAM": RETURN 
  205. 10200  INPUT "FILE NAME? ";FL$
  206. 10210  IF  LEN(FL$) = 0  THEN  POP : GOTO 1000
  207. 10220  PRINT D$"OPEN ";FL$;",V0"
  208. 10230  RETURN 
  209. 62999  REM   MASTER CATALOG              COPYRIGHT 1979 BY           ALAN G. HILL
  210. 63000  REM   MODIFIED FOR                SOFTDISK BY                 ALLEN MAYNARD
  211. 63001  REM   OCTOBER 1982